Integrated circuits (ICs) are designed today with computers using a computer program known as an integrated circuit design tool or editor. With this tool, a circuit designer enters symbolic or geometrical shapes representing elements of an integrated circuit design into a computer and manipulates the size and location of the elements to produce a simulated layout of the circuit. The geometrical shapes correspond to circuit elements, or components, such as transistors, resistors and capacitors and appear on a computer display screen. These shapes represent a physical layer of material in an integrated circuit such as metal, silicon doped with impurities, or polysilicon layers, with each material typically shown in a different color. From this simulated layout, the design tool generates data for producing photolithographic masks that are then used for fabricating the integrated circuit.
An important aspect of integrated circuit layout design is creating an electrical model of the integrated circuit being designed. The electrical model describes connections between circuit elements of the design. The model is used for a number of purposes, including checking whether the circuit design meets desired design rules, determining whether the design can be compacted and for simulating the circuit's operation. The circuit model is typically represented as a netlist, which is a list of the circuit elements and their connections. For example, a circuit model for a MOSFET transistor circuit is represented as a list of connections between the source, drain and gate elements of the transistor.
Integrated circuit layout tools have typically derived circuit models from circuit layouts in one of a number of ways. One way is known as the "implicit" circuit extraction, or connection, mode. In this mode, the circuit model is automatically and continuously extracted from the design as circuit elements are added and overlapped or abutted on screen. The electrical circuit connectivity is extracted using a set of electrical design rules which describe which mask layers can carry electrical current and which sets of two mask layers pass current from one layer to another. These mask layer conductivity rules are used in conjunction with geometric intersection routines to extract the electrical circuit model from the set of mask geometries in the layout.
The implicit connection mode works continuously to update the circuit model to reflect present connections between the circuit elements of the layout. Thus an initial connection between two elements produced by an overlap of their geometrical shapes is broken if the two elements are moved sufficiently apart from each other. This is a drawback where it is desirable to preserve circuit connections even if the elements are moved apart. For example, circuit layout tools often allow designers to write programs that use the tool to optimize circuit layouts, such as for compacting the area of the circuit. In using the tool and program, the designer enters an initial design that includes electrical connections. These connections are to be preserved as the program rearranges the shapes corresponding to the circuit elements to reduce the area of the initial design. With the implicit connection mode, however, electrical connections are lost if the geometrical shapes are moved sufficiently apart from each other so that they no longer overlap.
An alternative connection mode that preserves the electrical connections is known as the "explicit" wiring mode. In this mode, a user manually enters the electrical connections between circuit elements. None is extracted from the circuit design. But unlike the implicit mode, the connections between elements are preserved if overlapping geometrical shapes of different elements are pulled apart. A conductive wire is added when the connection is initially established, and the wire stretches or shrinks to accommodate the movement of a circuit element. With the explicit wiring mode, a user can connect geometrical shapes and then run a program that optimizes the placement of geometrical shapes because the connections are maintained. However, a drawback of the explicit wiring mode is the need to manually connect the circuit elements. For integrated circuits of repetitive design such as a memories or for complex circuits with numerous connections, the task of manual connecting the elements can be quite onerous.
Prior integrated circuit layout tools have been limited to one or the other connection modes because the electrical connectivity data in each mode is stored in a different format. Mixing the two modes has not been practical. Connectivity data from the implicit connection mode cannot be easily modified by the explicit wiring mode and vice versa.
Accordingly, an object of the invention is to provide an integrated circuit design apparatus with multiple connection modes available to a user. Still another object of the invention is to provide such an apparatus in which the connectivity data from explicit and implicit connection modes is stored in the same format in a single database. Yet another object of the invention is to provide such an apparatus in which connectivity data from both connection modes is stored in a format that permits the data to be updated with either mode if the electrical connections are further modified.